#include<iostream>
#include<algorithm>
#include<assert.h>
#include<string.h>
#include<deque>
#include <conio.h>
#include<graphics.h>
#include<time.h>
#include<chrono>
#include<cstring>

using namespace std;

typedef struct Node
{
	string name;
	int time;
	int feature;
}Node;

typedef struct Button
{
	int x;
	int y;
	int w;
	int h;
	COLORREF curColor; // 按钮当前显示的颜色
	COLORREF inColor;  // 鼠标在按钮里面的颜色
	COLORREF outColor; // 鼠标不在按钮中的颜色
	char* text;
};

Button* createButton(int x, int y, int w, int h, string str,
	COLORREF inColor, COLORREF outColor)
{
	Button* pB = (Button*)malloc(sizeof(Button));
	assert(pB);
	pB->x = x;
	pB->y = y;
	pB->w = w;
	pB->h = h;
	pB->inColor = inColor;
	pB->outColor = outColor;
	pB->curColor = pB->outColor;
	int textLength = str.size() - 1;
	pB->text = (char*)malloc(sizeof(char) * textLength);
	int i = 0;
	for (; i < str.size(); i++)
		pB->text[i] = str[i];
	pB->text[i] = '\0';
	return pB;
}

void drawButton(Button* pB)
{
	//1按钮就是一个矩形，画一个矩形
	setfillcolor(pB->curColor);
	fillrectangle(pB->x, pB->y, pB->x + pB->w, pB->y + pB->h);
	//2 画文字
	settextcolor(BLACK);
	setbkmode(TRANSPARENT);
	settextstyle(30, 0, "楷体");
	// 文字如何剧中
	// textwidth(str) ,textwidth(pB->text);
	int textw = textwidth(pB->text); // 文字长度
	int texth = textheight(pB->text); // 文字宽度

	int xx = pB->x + (pB->w - textw) / 2;
	int yy = pB->y + (pB->h - texth) / 2;
	outtextxy(xx, yy, pB->text);
}
